package com.ruantu.clothing.dao;

import com.ruantu.clothing.entity.*;
import com.ruantu.clothing.entity.print.PrintChuKuDan;
import com.ruantu.clothing.entity.print.PrintColor;
import com.ruantu.clothing.entity.print.PrintProduction;
import com.ruantu.clothing.entity.report.ChuKuReport;
import com.ruantu.clothing.entity.report.Foot;

import java.util.List;
import java.util.Map;

/**
 * Created by Administrator on 2018/7/9 0009.
 */
public interface ChuKuDao {

    int addChuKuSon(List<ChuKuSon> chukuson);//插入出库字表

    int addChuKu(ChuKu ck);//添加出库单

    List<ChuKu> selectChuKuDan(Map<String, Object> map);//获得出库单

    Foot selectChuKuCount(Map<String, Object> map);//出库单数

    List<DanPro> selectAllChuKuSonForCHuKuId(Map<String, Object> map);//根据单号获取出库单子信息

    Integer updateState(Map<String, Object> map);//改变出库单状态

    Integer selectOneChuKuDan(Map<String, Object> map);//查出当前单状态

    Integer deleteChuKuDan(String chukuId);//删除出库主表

    Integer deleteChuKuSon(String chukuId);//删除出库子表

    List<ChuKu> xiugaiChuKu(String chukuId);//修改出库单

    List<ChuKuSonXiu> xiugaiChuKuSon(String chukuId);//修改查出库子表

    int updateChuKuDan(ChuKu ck);//修改出库单状态

    List<Store> selectAllChuKuSon(String chukuId);//更具chukuId获得出库单子表信息，改库存用

    List<ChuKu> selectChuKuDanT(Map<String, Object> map);//获得已完成的出库单退货用


    List<ProSon> selectProSonShuLiang(Map<String, Object> map);


    /**
     * 新增零售单
     *
     * @return
     */
    int addLingshou(ChuKu chuku);

    /**
     * 查询零售订单
     *
     * @param map
     * @return
     */
    List<ChuKu> findSaleList(Map<String, Object> map);

    /**
     * 查询零售订单数量
     *
     * @param map
     * @return
     */
    int findSaleListCount(Map<String, Object> map);

    /***
     * 打印出库单
     */
    List<PrintChuKuDan> selectPrintChuKuDan(Map<String, Object> map);

    List<PrintProduction> selectPrintChuKuDanProduction(Map<String, Object> map);

    List<PrintColor> selectPrintChuKuDanColor(Map<String, Object> map);

    /**
     * 根据出库id查询出库详细信息
     *
     * @return
     */
    List<Sale> findSaleById(String id);

    /**
     * 根据出库id以及编号查询
     *
     * @param sale
     * @return
     */
    Sale findTuiHuoByProductionDetailsIdWithProductCode(Sale sale);

    /**
     * 查询已经退货的商品以及数量
     *
     * @param id
     * @return
     */
    List<Sale> findYituihuo(String id);

    /**
     * 查询零售当天销售额
     *
     * @param jgId
     * @return
     */
    Double findSaleXiaoshou(String jgId);

    /**
     * 查询销售单打印订单
     *
     * @return
     */
    List<SaleXiaoPiao> findSaleXiaopiao(String id);


    ChuKu selectAllSumAndZJ(String chukuId);


    List<ProSon> selectProSonYiShuLiang(Map<String, Object> map);


    List<ChuKuSonXiu> selectAllChuKuSonForkehuId(Map<String, Object> map);

    List<YearAndSeason> selectYearAndSeasaon();

    /***
     * 出库报表
     * @param map
     * @return
     */
    List<ChuKuReport> selectChuKuReportList(Map<String, Object> map);

    /***
     * 导出出库报表
     * @param map
     * @return
     */
    List<ChuKuReport> selectChuKuReportListDaoChu(Map<String, Object> map);

    /***
     * 出库报表总条数
     * @param map
     * @return
     */
    Foot selectChuKuReportCount(Map<String, Object> map);


    Integer addPic(Map<String,Object> map);



}
